package sale.wxb.loveshopping.entity.common;

import org.mapstruct.*;

import java.util.List;

public interface BaseConvert<S, T> {


    /**
     * 源 -> 目标
     *
     * @param source 源对象
     * @return target 转换的目标
     */
    //正向映射
    @InheritConfiguration
    T sourceToTarget(S source);

    /**
     * 目标 -> 源
     *
     * @param target 转换的目标
     * @return source 源对象
     */
    //反向映射
    @InheritInverseConfiguration
    S targetToSource(T target);

    /**
     * list  源 -> 目标
     *
     * @param sources 源对象
     * @return List<target> 目标
     */
    @InheritConfiguration
    List<T> sourceToTargetList(List<S> sources);

    /**
     * List 目标 -> 源
     *
     * @param targets 目标
     * @return List<S> 源对象
     */
    @InheritInverseConfiguration
    List<S> targetToSourceList(List<T> targets);
}